#include <stdio.h>
#include <stdlib.h>
#define maxsize 50
typedef char ElementType;
typedef int Position;
struct SNode {
    ElementType Data[maxsize];
    Position Top;
};
typedef struct SNode *Stack;
Stack CreateStack( Stack S );
int push(Stack S, ElementType e);
ElementType pop(Stack S);
ElementType symmetry(Stack S, char str[]);
int main(){
	Stack S;
	char str[maxsize];
	scanf("%s",str);
	S=CreateStack(S);
	if(symmetry(S,str)) printf("yes");
	else{
		printf("no");
	} 
	return 0;
}
Stack CreateStack(Stack S ){
	S=(Stack)malloc(sizeof(struct SNode));
	S->Top=-1;
	return S;
}
int push(Stack S, ElementType e){
	if(S->Top==maxsize) return false;
	else{
		S->Top++;
		S->Data[S->Top]=e;
	}
	return true;
} 
ElementType pop(Stack S){
	if(S->Top==-1){
		return false;
	}
	else{
		return S->Data[S->Top--];
	}
}
ElementType symmetry(Stack S, char str[]){
	int i=0,j=0;
	while(str[i]){
		push(S,str[i++]);
	}
	while(str[j]){
		if(pop(S)==str[j]){
			j++;
		}
		else{
			break;
		}
	}
	if(j==i) return 1;
	else{
		return 0;
	}
} 
